package cn.smile.business.basic;

import cn.smile.bean.dto.basic.MyShopDTO;
import cn.smile.bean.entity.basic.MyShop;
import cn.smile.bean.form.basic.shop.SavePositionForm;
import cn.smile.bean.form.basic.shop.SaveShopForm;
import cn.smile.commons.domain.IBaseService;

import java.util.Map;

public interface IMyShopService extends IBaseService<MyShop> {

    /**
     * 店铺初始化
     *
     * @param managerId 店铺管理员ID
     * @return 店铺邀请码
     */
    String initShop(String managerId);

    /**
     * 用户绑定店铺
     *
     * @param userId   用户ID
     * @param shopCode 店铺邀请码
     * @return 绑定结果
     */
    Boolean bindShop(String userId, String shopCode);

    /**
     * 登陆用户绑定其他店铺
     *
     * @param shopCode 店铺邀请码
     * @return 绑定结果
     */
    Boolean bindShop(String shopCode);

    /**
     * 查询我的店铺基本信息
     *
     * @return 店铺基本信息
     */
    MyShopDTO getMyShop();

    /**
     * 保存店铺信息
     *
     * @param form 店铺信息
     * @return 保存结果
     */
    Boolean saveShop(SaveShopForm form);

    /**
     * 查询店铺下用户ID集合(附带对应职位)
     *
     * @param shopCode 店铺编码
     * @return Map<用户ID, 店员职位>
     */
    Map<String, Integer> getUserIds(String shopCode);

    /**
     * 保存新职位信息
     *
     * @param form 保存参数
     * @return 保存结果
     */
    Boolean savePosition(SavePositionForm form);

    /**
     * 解除用户店铺绑定
     *
     * @param userId 用户ID
     * @return 解除结果
     */
    Boolean relieveBind(String userId);
}
